how can I detect that option value has changed?

I just came across your question while trying to do a similar thing. I figured out what I needed so I thought I would post an answer here in case someone else finds it useful.

In short I used this filter: https://codex.wordpress.org/Plugin_API/Filter_Reference/pre_update_option_(option_name)

And it looks something like this:

function set_admin_notice_options( $new_value, $old_value ) {

    // Check test mode
    if ( $new_value !== $old_value && ! empty( $new_value ) ) {
        update_option( 'some_option_changed', $new_value );
    }

    return $new_value;
}
add_filter( 'pre_update_option_my_option_name', 'set_admin_notice_options', 10, 2 );

With this method you will then have an option saved if a change is found. Then you can check that option anywhere else and perform any action with it and remove the option afterwards or whatever you wish to do.

Hope you find this helpful.