The big problem as you have found IS that when your machine is shut down the axis's may DRIFT from the exact position as there is NOTHING holding them in position.AND when you restat the Motoros tend to jump to the next full step. either forward of backward.
The only sure way is to develope a plan to be able to reset the machine to an exact know position in all axis's before to attemp to restart.
Here I use block of alum that has a hole machined into it an a milled top surface. It is bolted to the table way out of the way. Then when I start a project AND I have the 0,0,0 all set, I probe for the center of the hole and check for the top of the block and write down these figures OR put them in NOTES in the program itself.
IF I need to restart I just got back and reprobe the hole and set the bit to the top of the block and type in the new numbers to the dros. This ensure that I am on the exact coords base as the part I am working on.
You can do the same thing by milling the Block square on the X and Y axis while it is bolted in place. Then do a touch off on the x axis and reset Xdro then touchoff the Y axis and reset the Y axis. then touch off on Z.
As long as you did not move the block it will always return the same position.
Hope that helps, (;-)TP