GPS precision, TinyGPS++ library

Hello.

I use TinyGPS++ commands:

dist = TinyGPSPlus::distanceBetween(c_lat,c_lon,s_lat,s_lon); //?????
crs = TinyGPSPlus::courseTo(c_lat,c_lon,s_lat,s_lon);

where is
c_lat, c_lon - my current location from GPS device
s_lat, s_lon - my saved location = simple code for saving:

if (digitalRead(14) == LOW) 
  {
  s_lat=c_lat;
  s_lon=c_lon;
  digitalWrite(9,HIGH);
 }

So. I see strange thing:

If i move - everything work fine. I can return to point of saving position with good precision - i think something like 3 - 5 meters

If i stay on place of saving position - i see strange: distance variable slowly increased. Something like - 1 - 2 meters per sec.

I think - if i stay on place of saving position - no change of position must be..

Whats happen? This is in GPS nature, or it's TinyGPS++ error?

Thanks.
Sorry my bad English.

Whats happen? This is in GPS nature, or it's TinyGPS++ error?

What does your code look like? What does your serial output look like?

Nowhere near enough information provided.

On the other hand, GPSs really are expected to be moving.

As the satellites move, you will experiece that your receiver calculates position based on varying input data.
A new satellite comes in and other 'fall out'. This makes the error you experience. (up to 5m)
Also, if you are near buildings or other reflecting surfaces, you can receive an echo from a satellite not in clear view. This will effect calculated position.
so. it normal that 'you move' while standing still...