A GPS is never necessary for the operation of Stellarmate. You can set your time and position by hand more accurately than you can with a dongle GPS.
Here's what a GPS really looks like (taken from a stratum 1 timeserver):
Notice that GPS reports a course and speed. Recall that this server hasn't moved so much as a millimeter in a month. The receiver averages the time variation to create a "cooked TPV" , however it has to have a PPS tied to it to get the start of second. So the time is going to be off >= a half second on each time pushed to GPSD. The location can't be averaged however, since the course and heading values are used for navigation, and need to be real time. Software using the location data should use a regression to average the value into a true course approximation, or just average the values over a period of time to get the true location (which will not be precise, but within the 10m radius error bubble of the receiver.
NTP can fix the time issue by using the PPS signal. Here's what they look like:
Here you can see the time derived from the PPS + GPS listed as ".PPS."
The GPS alone, is listed as ".GPS." (The GPS entries lower down are actually the PPS or SHM clocks at other sites)
Notice the huge offset on the GPS time, along with a massive jitter value. This means, that the time received differs from the correct time by 631ms (.631 seconds) and the reported time varies by 51 milliseconds around that offset on every (once per second) transmit from the GPS. That's a lot of error. Notice that the PPS condition time barely varies at all - .001ms or 1 microsecond. The actual value is a bit less than that.
It is a fact, that using a dongle is less accurate than using google earth to set your location/time by hand. Sorry you wasted your money.