You can use a simple NE555 as a MOSfet driver.
It can deliver 200mA DC at it's output, and probably higher peak currents. The 5V output of a microcontroller pin is also very marginal as a gate voltage, and the NE555 can boost that to 12V.
The goal of gate drivers is to both charge and discharge the gate capacitance of the MOSfet quickly. If your gate driver is not adequate, then you can see this very clearly on your oscilloscope. When the gate voltage goes up, and reaches approx 4V, then it hits a "shelf" and stays the same for a while, and the MOSfet is slowly opening (and dissipating a lot of energy during that time). When the gate is charged and the drain has reached a low voltage the voltage rises again to the nominal output voltage of your gate driver (or uC output pin).
Real gate drivers can deliver much higher currents then a NE555 (sometimes even 2Ampere or more) but a NE555 is ubiquitous, already a lot better then "just a uC pin" and often adequate for low frequency PWM.
For higher frequency PWM there are more transitions per second, and thus the demands on the gate driver circuit becomes more important.
Some people like to push the PWM frequency above 20kHz to get it out of the audible range, but you need good MOSfet drivers for that. I prefer a simpler approach and use a PWM frequency of several hundred Hz. This does generate an audible hum, but the motor itself (and gears) makes lots of noisy anyway so I find the difference not very important.
During the test phase, adding a resistor for inrush current limiting is a good Idea, but once you've got a decent control loop working in your microcontroller you can suppress inrush current peaks by just adjusting the PWM duty cycle gradually.
Another very important part is the PCB layout. For example, if the GND track from the source of your MOSfet to the GND point of your circuit is too thin, then the source will rise at high currents, but the gate will stay at the same level (compared to your GND reference) and so the effective Ugs gets smaller, and you may even push your MOSfet in it's linear region where it starts generating lots of heat, and dies easily without a big heatsink. Using the 12V output of an NE555 prevents this, and also reduces the DC "on" resistance of the MOSfet by about a factor of 3, compared by a weak 5V gate drive.
I've also experimented a bit with making a push-pull gate driver form two PC817 opto couplers. On the primary side I put a red and a green LED in between the two optocoupler diodes. The combined voltage drop is more the 5V, so all LED's are off. Then you can pull the center with a microcontroller either to +5V or to GND to turn one of the optocoupler LED's on, and at the same time have visual feedback from the LEDs, and you can see the duty cycle by the relative brightness of the green and red led. On the "secondary" side you have to put some resistors in series with each of the optocoupler transistors to make it robust, so even if there is a "shoot through" condition, it does not lead to excessive current through the optocouplers. It's a fun and educational experiment to do, but it is not a very good MOSfet driver. I do have such a circuit running with an 16Vdc power supply (12V 600VA transformer with Full bridge rectifier and beefy elco's) and a motor from an old battery powered drill. With the PID control loop in the motor, the current never comes over 10A though. During testing I had some short burst of over 20A, maybe even 30A and the simple circuit did survive this but the MOSfet got hot quickly.