It is probably creeping. This is often because of thermal (or humidity) cycling. Essentially, the rug and the floor are going through some thermal or humidity cycle (over the course of the day usually). During this cycle their sizes change slightly relative to each other. And different bits of the rug stick to the floor at different parts of the cycle, which causes it to creep along the floor.
So imagine a cycle where the rug gets larger and then returns to its original size. Now imagine that, while the rug is growing, its left-hand edge (viewed from some direction) doesn't move with respect to the floor (it is the sticky bit of the rug in this part of the cycle). So when it is at its largest, the left hand edge is where it was, but the right hand edge has moved right. Now, when it shrinks, suppose that its right hand edge now sticks to the floor: it will then drag its left hand edge rightwards. At the end of the cycle it has moved right.
This changing in relative size can either be through differing thermal expansion constants, differing temperatures (the rug will see temperature changes sooner than the floor, and indeed will insulate the floor from them) or through one or both of the objects having differing responses to humidity changes.
In particular if the rug is hand-made as you say it is, it is quite likely also made from wool or cotton, both of which experience quite significant size changes with humidity. And probably you are only in the room for part of the day so there's a whacking great humidity cycle going on because of your breath.
The differential-slipping thing can be caused by things like the structure of the cloth: if there are lots of hairs sticking in one direction under the rug then it will 'want to' move one way, and will creep. You can often check this by just trying to slide it around. See user40292's answer for more on this mechanism.
The solution is some kind of underlay: something which has enough friction between both the rug and the floor to stop it moving. You can buy this stuff, as this is quite a common problem.