Stepper motors can not get past 150rpm

To run a stepper faster you need t be able to put more current through the motor. not seeing your wiring PWM doesn't make much sense. With a simple driver and low voltages I have been able to get 300RPM with no fancy programming. What is the voltage and current rating of your motor? Have you measured the actual current? Or are you feeding the PWM into a step input in which case your motor is running somewhere in the 500/4 or 125 rpm.