If you are ok to do some soldering, there is a way to have 5 free GPIO pins on that printer. I just modded my printer and created a pull request to include that feature into the software (it uses shift register to drive LCD pins, so only 2 pins are necessary for the LCD instead of 6, you need 74LS164 and 74LS08 to add in between Melzi and LCD as an interface convertor).
Back to the topic, I am right now playing with the autoleveling too and have some issues. I am going to reuse Z-min as a Z-max, but right now I keep it as is. Still having issue with initial Z after power on. It seems that Repetier firmware does not move Z up automatically before probing, so my servo-activated Z-probe hits the bed. One way to solve it is to use Z-probe start script to up the Z a bit, but doesn't the firmware do this on its own?... Guess no. Should it? Don't know, but if knows that Z-probe is below the hotend, why not?
Ideally, I would like to use the same pin for Z-min and Z-probe (both normally closed in series, and any hit will cut the circuit and go high, this logic ensures a protection from broken circuit). I expect that I can home to Z-min (assuming that Z-probe is inactive, say, high on the servo lever). But when I activate the Z-probing, I expect that firmware will go home (ok, with G28 in start script), then go up for some distance (so Z-probe can be activated), then activate it and use the same circuit as a Z-min to probe (since Z-probe will activate earlier in my case, it is below the hotend tip when active). After it probed, it will be deactivated (moved up by servo), and then normal Z-min is active again. I think that is what you also want.
Not sure if that scenario is possible with the current firmware.