@vatpom
Firstly, your understanding of a stepper motor is wrong. A normal stepper motor driver does not ‘orient’ any magnetic fields, it only needs to change polarity to execute one step.
See https://www.applied-motion.com/news/2015/10/how-does-step-motor-work
Most stepper motors are ‘reluctance’ steppers, which have little teeth on the poles. The teeth form the magnetic circuit between rotor and stator, and as with any magnet and iron, will pull tightly together if they are closely aligned, but only loosely if they are not aligned. The ‘holding torque’ comes from the force that is necessary to break that magnetic circuit once established.
Other steppers include “can-stack” steppers which are even simpler in construction - they have no wound poles! The ‘teeth’ in this case are connected to alternate sides of a single coil, and there are permanent magnets on the rotor.
https://www.allaboutcircuits.com/textbook/alternating-current/chpt-13/stepper-motors/#02452.png
‘microstepping’ can be applied by some stepper drivers to get extra resolution between steps, by energising both coils at different relative magnitudes simultaneously - essentially trying to hold both positions at once, but with different forces. Microstepping only works if the static load is essentially zero, e.g. driving a worm gear, or a leadscrew on a 3D printer
This is sort of similar to what FOC is doing, but still very different. Stepping (including microstepping) is completely open-loop. It has to assume that there is no load torque and that the rotor will align itself with the magnetic field, which it won’t if there is a load. Actually, when the ODrive is working in its open-loop mode e.g. for index search, this is also known as microstepping, because it’s the same thing at this point. But this is not FOC.
FOC itself is closed-loop - it needs to know the ACTUAL rotor angle, so as to align the field against the magnets at all times, even in the presence of a load. That’s why it is more powerful and more efficient than microstepping, because the field is aligned to the optimal torque-producing angle, and because the magnitude can be adjusted to whatever is needed to apply the desired torque. Stepping and microstepping drivers need to apply a high currrent at all times because they don’t know where the rotor is, and have to assume that it hasn’t skipped a pole.
You are correct that this is only to do with producing a torque - velocity and position are controlled by the outer PID loops.
Steppers are inherently velocity-driven, and have no control of torque whatsoever. But even at zero velocity, steppers drive their full current and continue to get very hot.
FOC is inherently torque-driven. At zero torque, FOC drives zero current.