Is it not possible to complete the code after "for (int shot=0 ; shot < TotalShots ; shot++){}" before counting another shot?
Yes, it is. You need a do nothing until mechanism in the loop() function, not an if mechanism.
for(int shot=0 ; shot < TotalShots ; shot++)
{
stepper.moveTo(pos);
stepper.run();
while (stepper.distanceToGo() != 0)
{
// Don't do a thing. The stepper ain't there yet.
}
// Now, the stepper is where you want, so take a picture
delay(1000);
Serial.println("number of shots");
// digitalWrite(SHUTTER_PIN, LOW);
// delay(2000); // take shot
// digitalWrite(SHUTTER_PIN, HIGH);
stepper.setCurrentPosition(0);
}