No, I think the problem is your limited understanding of interrupts.
Interrupts are asynchronous events, caused by "external" sources, which can happen at any time.
Asynchronous means not in any way related to or caused by the machine instruction sequence currently executing. Sources could be truly external (serial communication, GPIO transitions), or internal peripherals like timers, ADC, DMA, etc.
In your case (motor control), I assume a timer or ADC will trigger the interrupts.
The proper solution is to keep the write access limited to one location, in your case preferably in the interrupt routine.
In realtime processing systems, the PLC working principle has proven to be a successful method to avoid inconsistencies and runtime effects (race conditions).
This principle works on a process image, and consists of three sequential steps: reading all inputs, then do calculations and processing, and finally write all outputs.
One can surely adapt this approach to the application, and needs only to consider inputs & outputs that are relevent for the realtime process.
And, interrupt handler should be kept as short as possible, and avoid invoking other interrupts.