как раз для таких случаев у DisplayObject есть методы globalToLocal, localToGlobal.
Делается так:
1) Есть мувик с именем mc.
2) Получаем координаты его центра до начала скейла в системе координат его парента:

Код AS3:
var p1:Point=new Point(0,0);
p1=mc.localToGlobal(p1);
p1=mc.parent.globalToLocal(p1);
3) Скейлим и снова вычисляем координаты центра:

Код AS3:
var p2:Point=new Point(0,0);
p2=mc.localToGlobal(p2);
p2=mc.parent.globalToLocal(p2);
4) Если (p1.x!=p2.x || p1.y!=p2.y) корректируем положение мувика

Код AS3:
var delta:Point=new Point(p2.x-p1.x,p2.y-p1.y);
mc.x+=delta.x;
mc.y+=delta.y;
код писал из головы поэтому может потребуется поменять знаки у delta.
UPD: если мувик лежит непосредственно на стейдже, то можно сэкономить и вычислять координаты центра мувика в системе координат стейджа. Тогда не надо дважды вызывать достаточно ресурсоемкую операцию globalToLocal