I needed to do something similar the other day and came up with this solution using hook_user_presave()
function MYMODULE_user_presave(&$edit, $account, $category) {
if (!empty($edit['pass']) && $account->pass != $edit['pass']) {
watchdog('MYMODULE', t('Password changed for %name', array('%name' => $account->name)));
}
}