typically an end switch is mounted so you can blast right over it and not damage it.
the ones that act like end stops and not end switches, get destroyed.
glancing switch contact.
you run at rapids till you pass your switch, then stop
reverse till you clear your switch
then move slowly to it
back up again
third time you know the exact location.
compare where you think you should be to where you are.
of the error is 0.00, you are golden.
as for having two on any axis like your foam cutter would have, do the same thing, but get the axis in line/parallel on the first two tests, maybe put in a third or forth pass, just to make sure you have a good alignment.
since each motor is an axis to itself, and your foam cutter is a 4 axis machine, you should be using 4 axis of drivers and 4 axis (foam cutter) software. you need to be able to call each as an individual axis with an individual home and end .
if you are treating one axis as a single axis with two motors, you still need two home switches for setting your zero, but need to manually move one motor by hand to get axis in alignment, or put in actual end stops and drive the axis into the stops until the motors miss steps. at that point, you would have them at their maximum physical limits as you calibrated them.
if none of this make sense, then post on a forum that deals with what you are looking to do.
foam cutter cnc type forum ?
if you are running the Arduino as the controller, and need help, read 'how to use this forum' at the top of every forum, item #7 about posting code. or save your code as a txt file and attach it. how to do that is also in that thread.