Seems a common problem, I had it, mine was a lot more severe than yours, would rev up to 3000 sometimes, then when trying to pull away would drop to around 500 and not be able to move, anyway, I was told to clean the ISV which is a silver looking thing above the rocker cover, so did that, also removed the idle screw, cleaned the black gunk off, that might fix yours. Checked all my hoses for air leaks too.
It didn't fix mine, so I unplugged the temp sensor, (blue one), that controls part of the ECU and I don't have the problem anymore.
Granted the second option isn't really a true fix, but hey, anything's better than getting up half an hour early in the morning to compensate for problems whilst trying to drive to work!
Let us all know if you solve it!
Pip