Is there a better system than latitudes and longitudes?
To answer the question in the title (with another question): better for what?

To answer the questions in the body: there is another system called rectilinear or x-y-z Cartesian coordinates. This system is the same as the 3-d Cartesian coordinates you used in calculus class. The center of the Earth is (0,0,0), and generally the z-direction goes to the poles, while x and y go to the equators at right angles, and towards points specified by whatever datum you are using. For example, the North Pole could be coordinates (0,0,6353000) in meters. 

As for tools to do the conversion, you should probably send those kinds of questions to the GIS Stack Exchange. However, since they tend to be snippy when I've asked questions in the past I will tell you how I do it. I use the pyproj package for python, which is a python wrapper around the C Proj4 package. 

Pyproj is pretty straight forward to use, but the transformations you want might not be so easy to figure out. The information you want is the EPSG numbers of the transforms. If you are using the common WGS-84 datum, for example, the rectilinear is 'epsg:4978' while the lat-lon is 'epsg:4326'. 

A code example follows from a python (3.5) interactive console. To transform the estimated coordinates of the north pole above, we want to go from rectilinear to lat-lon.

&gt;&gt;&gt; import pyproj
&gt;&gt;&gt; rectProj = pyproj.Proj(init='epsg:4978')
&gt;&gt;&gt; latlonProj = pyproj.Proj(init='epsg:4326')
&gt;&gt;&gt; pyproj.transform(rectProj, latlonProj, 0, 0, 6353000)
(0.0, 90.0, -3752.3142451792955)


What we see here is that when we transform from rectilinear to lat-lon, we get a longitude of 0, latitude of 90, and azimuth (or altitude) of -3752.3 meters. So at the North Pole, 4 km below the surface. This altitude difference is due to both the roughness of my estimate and the specifics of the WGS-84 datum. To go the other way from the lat-lon Greenwich Observatory (at 51.478 degrees north, 0 degrees west; azimuth or elevation of 0 meters) we can do:

&gt;&gt;&gt; pyproj.transform(latlonProj, rectProj, 0, 51.478, 0)
(3980563.802812242, 0.0, 4966838.380583356)


We see that 90 degrees north at altitude of zero in WGS-84 corresponds to that (x, y, z) triplet, in meters. Since Greenwich lies on the 'y' coordinate axis in the WGS-84 system, the y coord is zero. 

Hope this helps.