If you are not using a clever microstep controller then your microcontroller will need to do the clever stuff instead. Unless you have access to suitable software then you will need to program it yourself. Which is why I wimped out and bought a controller.
You do not mention the voltage you are running on or how you deal with the effects of inductance. If you calculate the voltage from I*R this will work but the motor will only run at very low speed. Due to the time taken for the effects of motor inductance limiting the rate of rise of current.
In a commercial controller they run from a very high voltage and limit the current with pulse width modulation. Using current monitoring to regulate the current in each winding. This also has the effect of allowing the motor to run at a much higher speed.
It is difficult to see how you could achieve microstepping without doing something similar. The hardware you have is capable of this, once you have added in some current monitoring. The problem is in the complexity of the software needed.