It should work but the STP90NF03 is a low gate charge device and has a logic level threshold so you probably don't need the driver stages. It could be driven directly from the microcontroller but a single transistor current booster would be advised.
You drive PWM pulses directly to the motor, that's fine if it is simply a brushed motor but if it has any internal electronics you need to check with the manufacturer, you might be resetting it's internal speed regulator 1,000 times per second!
Note that you have no feedback to regulate the speed and the torque will be very small when the average voltage is low. You might find the motor doesn't start at all until the PWM ratio is high then suddenly speeds up. Don't expect a linear PWM to speed control.
Brian.