Yes a resistor should be used to limit the diode current, even if the mcu can't provide enough current to damage the diode you still stress the mcu output because it tries to provide as much current as possible and depending on the mcu this can be above limits (of the mcu specification).
Using 24v will not solve your problem because then you need to use a feedback system to limit the current of the motor, you can't apply 18v to a 12v motor unless you use some pwm.
If you apply a power supply of about 16-17v to the bridge then it should be ok because you would get about 12v to the motor.
A mosfet bridge would be the suggested method in my opinion, you will get a very low voltage drop and the heat on the active devices wil be very low too.
Alex