Could you normalize at the census tract level? Better yet, assign average occupants, shoppers, cars parked, etc. to the locations at which the crime occurred.
A bigger issue is variance in less dense areas. It looks like what you're doing today is simple counts whereas for areas with lower crime rates, more history might provide a more stable crime rate. It might also be useful to weight against a demographic prediction of crime or at least average the crime rate over the period that the demographic prediction is stable.