check ur motor mounts. a bent valve or rod will messup through out the rpm range, not just at idle.
it could also be ur idle control. its on the throttle body on the right side of throttle. ususally there's a little cover on top of it and when up pop that cover off, theres a flat head bolt in there that u can turn and reset ur idle