Note that "if update(Adult_Enrolled)" will tell you that [Adult_Enrolled] was part of the UPDATE statement, but not that the specific row actually changed value.
You also need to make use of the Deleted and Inserted pseudo tables which contain the Before/After copies of EACH/EVERY row in the update. You are updating the whole table (which may be what you want, but is not specific to the rows that were just updated)
set Child_Enrolled = CASE I.Adult_Session_Enrolled
WHEN '1000' THEN '100'
WHEN '2000' THEN '200'
WHEN '3000' THEN '300'
ELSE Child_Enrolled -- If something goes wrong! leave the original value there
FROM [dbo].[Registrations] AS U
JOIN Inserted AS I
ON I.MyID = U.MyID
JOIN Deleted AS D
ON D.MyID = U.MyID
WHERE COALESCE(D.Adult_Session_Enrolled, '') <> COALESCE(I.Adult_Session_Enrolled, '') -- Column has changed
AND I.Adult_Session_Enrolled IN ('1000', '2000', '3000')