The recommendation is to assign a /56 to end users from an ISP. That would give you plenty of subnets to work with.
/56 == 256 /64s Each /64 == 18,446,744,073,709,551,616 addresses
/56 == 256 /64s Each /64 == 18,446,744,073,709,551,616 addresses
Each subnet (/64) is 18,446,744,073,709,551,616 addresses - which is nice.
(I'm looking at you UPC/Virgin Media/Liberty Global)