The solstice was determined by observing the shade of the gnomon (a vertical stick on a level ground). Indeed, this is difficult to observe with a good precision. However, if you do this for many years, you obtain a better and better result. For example, suppose that your error is
E, and you observe for N years. This gives you the length of the year (the time interval between, say two summer solstices) with error E/N. This principle permitted to determine the
length of the year (and other constants in astronomy) with high accuracy.
EDIT. Ptolemy describes the following device for determining equinoxes. A flat metal ring
was permanently installed in Alexandria in the plane parallel to the equator. (For this you
have to determine the inclination of ecliptic first, then your latitude. All this is done by measuring the sun altitude at noon with a gnomon). At the moment of equinox, both surfaces of
the ring will be illuminated by the Sun.
Determination of the moment of a solstice is more difficult and less accurate.
But again you
measure the altitude of the Sun with the gnomon or a similar device at noon, if the solstice happens at noon, say summer solstice, you will obtain the maximal possible altitude for this place. If the maximum this year is less than the maximum possible altitude, this means that the solstice did not happen at noon, and you interpolate.
All this information is contained in Ptolemy's Almagest. Modern calculations permit to verify the
numerical data. They show that Hypparchus and Ptolemy could determine the time of an equinox with 7 hours accuracy and solstice to 12 hours.
Hypparchus and Ptolemy determined the length of the year as 365 days 5 hours 55 min 12 sec.
They used observations spanned over 550 years.
See also my answer to a related question:
What knowledge may have been lost at the Library of Alexandria?