You have chosen an excellent MOSFET, but your circuit is incorrect as shown.
If this is how it is actually connected it will not work.
A better datasheet for your IPP096N03L MOSFET is here
A MOSFET requires a control voltage to be applied between gate and source.
In the case of an N Channel MOSFET the gate must be more +ve than the source. In this case +4V to +5V n the gate will work well.
While your circuit is incorrect it does not explain what you are seeing. I suspect you may have drain and source reversed (or worse :-) ).
Place FET on a table, label side up, pins towards you.
Left side pin = gate.
Right side pin = source.
Middle pin (if present) and tab = Drain.
BUT - When the motor is on the source will be at 12V so the gate needs to be at 12+4 = 16V.
SO - The motor should be in the DRAIN of the MOSFET and not in the source.
The gate level also MUST be controlled at all times.
This is the original incorrect circuit with required changes shown:
Ensure pinout is correct as above.
- Remove motor from source
- Connect source to ground
- Connect motor from 12V to drain.
- Connect diode across motor as shown now.
- Consider connecting an eg 10k resistor gate to ground to ensure gate is grounded if drive is ever disconnected.
Drive with 0v/5V.
If this does not work the MOSFET is dead.
Your circuit will look more like this.
ZD1 is optional but useful for inductive loads (such as a motor). zener voltage should be higher than max drive voltage. Say a 12V zener. Optional.
R1 is not strictly necessary when playing. Say 10 ohms.
TTL gate shown here is replaced by a microcontroller in your case.
Note that this circuit works well for slow switching (maybe 10's to hundreds of Hz) but for higher switching speeds yu will need a gate driver. Simple and cheap to do but necessary at say 1 kHz up.