You don't actually say how much current your motor draws. If its and amp or two, the Ali circuit shown is marginally ok. It isn't very good at all. Its just a 555 pwm driving an oversized low side switch with rather poor drive. For low currents, it might work but it has a lot of shortcomings. The type of PWM controller do indirectly control "average" current but without measuring current, its all pretty pointless. With PWM control, you are indirectly controlling average motor current by turning the motor inductance on and off.
No, a PWM circuit won't even control "average current"; it's average voltage control. PWM as-is is just equivalent to variable voltage control, and motor current is (Vsupply - Vbackemf)/Rmotor. Practically what this means is, assuming 100% efficient motor, apply just 10% duty cycle, and current initially (or to stalled rotor) is infinite. At 10% rated rpm, current is then zero.
Remember, in an ideal motor, voltage ~ speed and current ~ torque.
In other words, just controlling PWM duty does not even try to control current; it tries to (poorly) control speed, and current is whatever it is; acceptable near the chosen speed, excessive when rotation is slower than the set speed.
With very inefficient motors, R is large and current is limited by the motor R itself. With simple PWM, this just results in very crappy speed control, but no other harm because of the limited current. But enter higher power, and motors will be more efficient. Stall current will be excessive, and the only way to deal with this is to utilize the inductance of motor to limit current, by terminating PWM cycles before current reaches too high - but this requires active sensing circuit.