In widget, the value of select field doesn’t get updated, changes after saving

Use get_the_ID() instead of the_ID(). the_ID() will echo’ed the ID of posting:

<option value="<? the_ID(); ?>" <?php selected(get_the_ID(), $instance['post_to_display']); ?>><?php the_title(); ?></option>