You can use PiShrink, it will shrink the size of your image then the first time you boot from this shrinked image it will autoexpand to the size of your new SD card, I would use it even if there is no need to use a smaller SD card because usually the backup image contains whitespace and they are unnecessarily the same size of your original SD card.
so just gi t-clone it to your distro:
git clone https://github.com/Drewsif/PiShrink.git
then run it against your big fat original image:
sudo ./PiShrink/pishrink.sh MyBigFatImage.img NewSlimImage.img
If you omit the new file name it will work directly on your original image without wasting space.
Once it finishes (very fast) it will inform how much it shrinked, in my test it went from 8gb to 2gb.
One nice feature of PiShrink is that once you boot for the first time of the compressed image the PI it will expand and take the whole SD card then auto-reboot in about a minute once it finishes expanding, so you have all the space available to use.
It`s very important to let it reboot before you start using your newly cloned PI.
If you want a more complete guide go to viewtopic.php?t=145712#p1254148