The problem you are facing is conversion between two different coordinates systems: the graphical one and the input one.
Like you said, libGDX uses a 1 to 1 ratio between space coordinates and pixels, and starts in the bottom left corner. But it can be anything, really. That is just the default behavior of libGDX. You could change the origin of the coordinates system, flip the axis and even scale them.
Under the hood there is a graphics library called OpenGL. This graphics library will use a transformation matrix in order to draw shapes on the screen. Its default matrix will create the following coordinates system:
So as you can see, we are far away from a pixel-perfect camera.
Each hardware can have a different implementation of this, but the most popular by far is to use the top left corner for the origin and use a 1 unit to 1 pixel ratio. So when you poll a mouse (or touch) position, (0,0) will be top-left, and the position will match screen size in pixels.
What you need to do now is convert the input coordinate to fit in the graphics space. In your example, it is quite simple: you only need to take the height of the screen and subtract the Y position of the touch. This will "flip" the Y position, thus giving you the value you wanted:
// This will flip the Y value of the touch
graphicsY = screenHeight - touchY;
Please note that this will only work if both the graphical and input spaces are the same height. If not, you will need to multiply this value with the ratio of the two spaces:
// Here we add the ratio
graphicsY = (screenHeight - touchY) * (graphicsHeight / screenHeight);