Translate will result in a relative movement. As long as your hSliderValue is not 0.0 it will move. The actual value will just determine how fast it is moving. Since you only accept values between 0 and 10 you can only move “forward”.
I guess you don’t intended an accelerated movement so translate is not the right function for your problem then.
If your camera should move from it’s start position 0-10 forward you should save the start z value and add it: camPosition.z = hSliderValue + startValue;
If you wanted an accelerated movement it gets a bit tricky. You should define a deadzone around 0 and the slider value should go from -10 to 10. You should also multiply the movement by Time.deltaTime to make the movement framerate-independent.
ohh and btw. this code:
GameObject obj = GameObject.FindGameObjectWithTag("MainCamera");
Camera cam = obj.GetComponent<Camera>() as Camera;