It's not possible with an accelerometer. If you try to calculate position based on the acceleration readings over time you'll find yourself off course within just a few seconds. Accelerometers are just not precise enough.
Indoors your best chance is by using infrared beacons. If you just want to find the charging station then the rover can just bump around until it sees the beacon and then home in on it. If you create multiple beacons and have each emit a specific (remote control) signal then the rover can do some triangulation.
An Arduino really isn't the right board for mapping. Not enough memory. If you use something like a Raspberry Pi then you can use an upward facing camera and fiducials on the ceiling to triangulate your position and quite accurately as well (google "reacTIVision").