First question is do you plan to directly drive one of those wheels on the dolly or use a belt or screw to move the dolly? If you are directly driving one of the wheels I would suggest you try to avoid it as the wheel could loose traction and cause a vibration and/or jerking motion and loose its position. Since the rails look like they can flex loosing their Parallelism, one wheel can leave the rail surface causing the motor to spin freely loosing position and causing the dolly to stop moving. Mount the rails to a very sturdy wood or metal frame to prevent flexing.
You will always find limit switches (aka end stop sensor) on any kind of linear motion device. They serve two purposes. The first is obvious, stop the motor when the travelling apparatus (table, dolly, camera, etc.) reaches its limit to prevent mechanical or motor damage. this is called a "hard limit". The second use is to home the stage. Unless you are using absolute linear encoders, you have no way of telling where you are in the given travel length of the stage. So you program a procedure that runs the motor in one direction until it hits a limit switch and then calls that position home or zero. Then from there it counts up (or down) from that position to find out where you are in the travel length. You can also program whats called a "soft home" which is used if you want to call a particular position within the travel limit "home" the program and index up or down from there. You still need to reference a hard limit though, this keeps the stage within its mechanical limits.
Without a limit switch your camera could end up on the floor if no mechanical end stops are in place. If your using a micro-controller just make sure you step and use the limit switch input as an interrupt to halt the stepping code. Or an if statement inside a stepping loop to break the loop if triggered.
Encoders are not normally needed on stepper motors unless you expect to encounter a large dynamic load or heavy loads that can bind the driving mechanism causing the motor to skip steps. This is where you need an encoder to count the steps and verify that the motor has actually indexed itself. Your camera dolly is a constant load and if you size your motors accordingly, you don't need encoders.
A servo motor is MUCH more complex. You must have an encoder as there is no stepping in a servo, its pretty much a motor that is nudged forward until the encoder count satisfies the motion command (eg. turn motor clockwise 1000 counts.) If there is no encoder, you don't know where the motor is going, how fast, etc. Any micro-controller will be swamped with encoder counts and feed rate will be severely limited as you don't want to skip counts. It needs to be closed loop as it has to index motor and then check the counts. You don't need a servo.