You might have an air or a vacuum leak. This is very common. Open the hood and listen for a hissing sound when the engine is running.
Un-regulated air can enter the engine through:
- a vacuum leak
- a dirty airflow sensor that is not reading airflow accurately
- an EGR valve is not closing and is leaking exhaust into the intake manifold
- an EGR valve that is allowing too much flow.
If it is hard to pinpoint use a spray like WD-40 around the intake manifold and vacuum lines and see if the engine stumbles or if the idle is affected. Be extremely careful when doing this!
Also, your throttle body may be carbonized and needs to be cleaned. This can cause all sorts of idle and hesitation problems. This is caused by the throttle plate not seating properly. The First thing I would do is clean out the throttle body with some throttle plate and intake cleaner and a small brush. Another common cause would be the Idle Air Control motor. This is very common on older cars.
The IAC motor gets lazy and can't keep up with the fast idle changes. Also when the IAC motor is out, check the passages for carbon build up. If they are plugged they need to be cleaned out.