Could you have a hidden cell that holds the old value in I47? Let's call it XX47
If Not Intersect (Target, Range("I47")) Is Nothing Then
   if Range("I47").value <> Range("XX47").value then
      Range("A1") = "=NOW()"
     Range("XX47").value  = Range("I47").value 
  End if

End If
(I haven't tested this so some modification may be needed)