Welcome to the garage.
I would first check if the throttle plate is not sticking in an above idle position. Could be a stiff point in the throttle cable for example.
Idle itself is controlled by the IAC (idle air control) stepper motor. When the IAC plunjer gets dirty, the idle control will be difficult and could result in a higher idle or fluctuating idle. So it would be a good thing to remove the IAC stepper motor and clean the plunjer and the air canal in the throttle body. Take care to not rotate the plunjer, because it will break internal plastic pieces and you will have to buy a new IAC.
If after this the idle is still high, then the TPS (throttle position sensor) is most probably the culprit. If you have a scanner with live data, then you could check the TPS position (which is in %). At idle it normally sits around the 12%.
JEEP Grand Cherokee 4.7 Lmtd 2004
HID 8000K in low and fog / Quad Squad member
KYB Gas-a-Just shocks / Pirelli Scorpion ATR 245/65/17 - Transgo reprogramming shiftkit.