in addition to the above mentioned comment, one of the following options should reduce the required disk space for the target virtual disk.
Zero out the empty space on the existing partition using e.g. sdelete, or - like you wrote - shrink the partition size from within the guest OS itself, create a temporary partition on the free disk space and zero it out. Then run Storage vMotion and select Thin Provisioning as the target virtual disk format.
André