How to filter noise from fan
Nothing dramatic going on here. You just need to install some basic bypass capacitors on the power supply feed and the op-amp feedback path.

Insert a .1uF capacitor from pin 1 to pin 2 of the op-amp. This will stabilize the op-amp so it is not prone to oscillation burst. Replace C1 with a .1uF capacitor and move the 100uF capacitor (+) lead to the 12 volt power supply, as close to the mosfet as possible. To prevent odd behaviour install a .1uF capacitor directly across the power supply pins of the op-amp.

Take readings again and the servo-control loop should be stable with little or no noise on the 12 volt line.

EDIT 1: OP made final(?) changes which included a .1uF across the op-amp pins 1 and 2, 100uF across the diode/motor, and adding a 2,200uF capacitor across the 12 volt to ground power feed. The result is a noise drop from 3V p-p on the 12 volt line to 18mV p-p. This is an improvement of 166 times lower, or 44.436 dB lower, as a voltage ratio.

EDIT 2: OP removed C1 and installed a 3K resistor in the emitter of Q1, leaving other parts the same. Reports lower noise level but did not give values.