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. Unmetered 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 take some brake cleaner or starting fluid 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 carboned up and need 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.
Check for the following conditions:
Poor connection at PCM or IAC motor. Inspect harness connectors for backed out terminals, improper mating, broken locks, improperly formed or damaged terminals, and poor terminal to wire connection. Damaged harness. Inspect the wiring harness for damage. Restricted air intake system. Check for a possible collapsed air intake duct, restricted air filter element, or foreign objects blocking the air intake system. Throttle body. Check for objects blocking the IAC passage or throttle bore, excessive deposits in the IAC passage and on the IAC pintle, and excessive deposits in the throttle bore and on the throttle plate. Check for a sticking throttle plate. Also inspect the IAC passage for deposits or objects which will not allow the IAC pintle to fully extend. Vacuum leak. Check for a condition that causes a vacuum leak, such as disconnected or damaged hoses, leaks at EGR valve and EGR pipe to intake manifold, leaks at throttle body, faulty or incorrectly installed PCV valve, leaks at intake manifold brake booster hose disconnected, oil filler cap, oil level indicator loose or missing, etc..