Assuming manual transmission.
Above 5mph the computer will hold idle at approx. 1,000, with the clutch pedal in, that is normal, it reduces emissions, and was added in 1995 with the new EEC-V computers.
Are you coasting in Neutral with clutch pedal out, or coasting in gear with clutch pedal in?
The only control the computer has for the idle is the IAC Valve(idle air control valve).
Fuel injected engines have no "jets" like carburetors had, so an "idle screw" won't work, or more correctly won't work the same way.
An idle screw did adjust the amount of air being let into the intake manifold, but with jets the amount of fuel being used changed with the air flow, so engine couldn't get to Lean at idle, and melt pistons.
An IAC valve is on an air passage that by-passes the throttle plate, the computer opens/closes the valve to allow more or less air in to the intake when throttle plate is closed, which adjusts the idle RPM, computer runs fuel injectors rich at idle to avoid the Lean issues.
Your up and down RPMs could be a dirty IAC valve, valve is controlled by a Stepper motor, computer can send this type of motor a voltage pulse that will cause the motor/valve to go to a preset position, there are over 100 positions the computer can call on.
If valve gets "sticky" the computer tries to set stable RPM but can't because valve is randomly sticking.
But because you say it only does it between 40-50mph IAC Valve is only a may be.
But it is free to pull off the IAC Valve and clean it, and they do need to be cleaned now an then.
Check the throttle plate and cables, remove the throttle and cruise cable, open and close the throttle manually(engine off) and make sure it isn't sticking when closed, or is loose when closed(bad spring), if spring can't hold throttle plate closed tight against engines suction it can open slightly, increasing RPMs and then computer closes IAC Valve to reduce idle again.
What is the code you have for "too rich"?
OBD II codes, especially in the '95 model year are not meant to be taken literally, I know, "then whats the point of them", lol, point is "they" want you to take it to a mechanic that speaks OBD IIese.
Simply remove 1 spark plug, if it is dark brown or blackish then you indeed are running rich, if it is the correct light brown then code means computer thinks it is adding too much fuel for the reported air.
MAF sensor reports the amount of air coming in to the engine.
Computer knows that the engine needs 14:1/air:fuel ratio
Computer calculates the fuel needed and opens the fuel injectors to deliver that amount of fuel.
It then checks the O2 sensor to see if there is too much oxygen in the exhaust(lean) or too little oxygen in the exhaust(rich), O2 sensors only see oxygen, not fuel.
Computer then adjusts the open time(pulse width) of the fuel injectors based on the O2 sensors data.
If too much oxygen then computer opens injectors longer, that shows as a + in Fuel Trim
If too little oxygen then computer opens injectors shorter time, that shows up as a - in Fuel trims.
So there are a few things involved, swapping sensors out is one way to find a problem, I don't agree with that since I am cheap, lol.
Could O2 sensor be bad, 20 years old, probably could use changing, but not the likely problem.