If the move is the same each time, you can simply animate one still, duplicate it many times, then replace the footage source for each duplicate layer. (Make sure your photos are all batch-converted to equivalent size first.)
Alternately, here's a simple Expression that will give a layer constant movement in Z space. Adjust the velocity to suit.
veloc = -200; //z space velocity (pixels per second)
x = position;
y = position;
z = position + (time - inPoint) *veloc;
To automatically fade the layer up and down, you can add one of the FadeIn+Out preset expressions from the Behaviours folder of Animation Presets.
I have a couple hundred expressions saved as animation presets that do all kinds of automated but editable behaviors for layers. One of my favorite is this FlyInBounceOut. Apply this preset to any layer at any scale, 2D or 3D and the layer flys in from the left side of the frame, bounces to a stop, then, just before the out point, falls off the bottom of the screen. Everything from the speed of the fly in to the bounce rate is controlable by slider and the in and out point of the layer set the start and end point for the animation. All you do is add a layer, set the in and out point, move the CTI to the middle part of the layer and drag it into your desired resting position, then apply the effect and adjust the speed and bounce if you would like.
Here's the preset for you or anybody to look at.
You could take Andrew's expression or some variation of it, create an animation pre-set, and then apply it to all of your photos.
I will see if I can dig up the thread where I posted this example January 17th of last year. This was just an expression that uses index, valueAtTime and a slider to make one layer follow another.
Another approach to this problem would be to set up an image sequence with your photos in a pre-comp that was sized to the maximum size you want the photos to be and then use that pre-comp as a sprite or textured polygon in an app like Particular.